#ifndef MAINWINDOW_HPP
#define MAINWINDOW_HPP

#include <QtGui>
#include "map/map.hpp"
#include "map/mapView.hpp"
#include "map/mapconfig.hpp"
#include "dragdockwidget.hpp"

class MainWindow : public QMainWindow {
	Q_OBJECT

	public:
		MainWindow(QWidget *parent = 0);
		~MainWindow() {}

		void createMenu();			// Fonction qui s'occupera de créer les Menus
		void createActions();		// Fonction qui s'occupera de créer les Actions

	public slots:
		void saveMap();				// Enregistrer la map
		void newMap();				// Nouvelle Map
		void openMap();				// Ouvrir une map

	protected:
		void resizeEvent(QResizeEvent* event); // Event pour le redimensionnement de la fenetre
		void closeEvent(QCloseEvent *);

	private:
		//Widget Contenant la zone central
		QWidget *_centralArea;

		// Menus
		QMenu *_fileMenu;			// Menu Fichier
		QMenu *_mapMenu;			// Menu Carte

		// Menu Fichier
		QAction *_fileNewMap;		// Nouvelle Carte
		QAction *_fileSaveMap;		// Enregistrer la Carte
		QAction *_fileOpenMap;		// Ouvrir une Map
		QAction *_fileQuit;			//Quitter le programme

		// Menu Carte
		QAction *_mapProperty;		// Propriété de la Carte
		QAction *_mapResizeMap;		// Redimensionner la Carte

		// MapView
		MapView *_mapView;

		// Map
		Map *_map;

		// Fenetre de configuration de la map
		MapConfig *_mapConfig;

		// Dock Widget utilisant le Drag and Drop
		DragDockWidget *_dockWidget;

		// Layout
		QHBoxLayout *_layout;

		// Status Bar
		QStatusBar *_statusBar;
};

#endif //MAINWINDOW_HPP
